package saxion.sportvereniging;

import java.util.ArrayList;
import saxion.sportvereniging.groep.*;
import saxion.sportvereniging.vastgoed.Vastgoed;
import saxion.sportvereniging.vastgoed.VastgoedFactory;

public class Sportvereniging {

	private ArrayList<Lid> leden;
	private ArrayList<Team> teams;
	private ArrayList<String> groepen;
	private ArrayList<Vastgoed> vastgoed;
	
	private VastgoedFactory vastgoedFactory;
	private GroepFactory groepFactory;
	
	
	private static Sportvereniging instance = null;
	
	public static Sportvereniging getInstance() {
	      if(instance == null) {
	         instance = new Sportvereniging();
	      }
	      return instance;
	}
	
	protected Sportvereniging()
	{
		leden = new ArrayList<Lid>();
		vastgoed = new ArrayList<Vastgoed>();
		groepen = new ArrayList<String>();
		teams = new ArrayList<Team>();
		
		vastgoedFactory = new VastgoedFactory();
		groepFactory= new GroepFactory();
		
		groepen.add("Bestuur");
		groepen.add("Junior");
		groepen.add("Scheidrechter");
		groepen.add("Senior");
		groepen.add("Trainer");
	}
	
	public void addVastGoed(String type, String naam, double kosten)
	{
		vastgoed.add(vastgoedFactory.createVastgoed(type, naam, kosten));
	}
	
	public ArrayList<Lid> getLeden()
	{
		return leden;
	}
	
	public ArrayList<Team> getTeams()
	{
		return teams;
	}
	
	public ArrayList<String> getGroepen()
	{
		return groepen;
	}
	
	public ArrayList<Vastgoed> getVastgoed()
	{
		return vastgoed;
	}
	
	public void addLid(Lid lid) {
		leden.add(lid);
	}

	
	
	public void addTeam(Team team) {
		teams.add(team);
	}
	
	public void addGroepaanLid(int lidId, int groepId)
	{
		
		Lid selectLid = leden.get(lidId);
		String groep = groepen.get(groepId);
		
		Lid Lid = groepFactory.createGroep(groep, selectLid);
		
		leden.set(lidId, Lid);
	}
	
}
